1. Field of the Invention
Embodiments of the present invention relate generally to digital media and, more specifically, to adaptive streaming for digital content distribution.
2. Description of the Related Art
Digital content distribution systems conventionally include a content server, a content player, and a communications network connecting the content server to the content player. The content server is configured to store digital content files, which can be downloaded from the content server to the content player. Each digital content file corresponds to a specific identifying title, such as “Gone with the Wind,” which is familiar to a user. The digital content file typically includes sequential content data, organized according to playback chronology, and may comprise audio data, video data, or a combination thereof.
The content player is configured to download and play a digital content file, in response to a user request selecting the title for playback. The process of playing the digital content file includes decoding and rendering audio and video data into an audio signal and a video signal, which may drive a display system having a speaker subsystem and a video subsystem. Playback typically involves a technique known in the art as “streaming,” whereby the content server sequentially transmits the digital content file to the content player, and the content player plays the digital content file while content data is received that comprises the digital content file. To account for variable latency and bandwidth within the communications network, a content buffer queues the incoming content data ahead of the content data actually being played. During moments of network congestion, which leads to lower available bandwidth, less content data is added to the content buffer, which may drain down as content data is being de-queued to support playback at a certain playback bit rate. However, during moments of high network bandwidth, the content buffer is replenished and additional buffer time is added until the content buffer is generally full again. In practical systems, the content buffer may queue content data corresponding to a time span ranging from seconds to more than a minute.
Each digital content file stored on the content server is typically encoded for a specific playback bit rate. Prior to initiating playback, the content player may measure available bandwidth from the content server and select a digital content file having an bit rate that can be supported by the measured available bandwidth. To maximize playback quality, a digital content file with the highest bit rate not exceeding the measured bandwidth is conventionally selected. To the extent the communications network can provide adequate bandwidth to download the selected digital content file while satisfying bit rate requirements, playback proceeds satisfactorily. In practice, however, available bandwidth in the communications network is constantly changing as different devices connected to the communications network perform independent tasks. If available bandwidth in the communications network drops below a level required to satisfy a playback bit rate requirement for a sufficiently long period of time, then the content buffer may drain completely, resulting in a condition known in the art as a buffer under-run. If a buffer under-run occurs, playback may become highly unreliable or halt altogether, severely diminishing overall playback quality. Because traffic over a conventional communications network tends to be unpredictable, congestion and diminished bandwidth is a common occurrence that negatively impacts conventional streaming playback systems.
One technique for reducing the likelihood of a buffer under-run in a streaming playback system is to select a conservatively low bit rate for playback. However, in doing so, the user ends up with a lower quality playback experience, even though a higher quality experience may have been possible. Another technique for reducing the likelihood of a buffer under-run is to pre-buffer a relatively large portion of the overall digital content file prior to beginning playback. However, this technique necessarily requires the user to wait a relatively long time before playback can begin, and therefore diminishes the overall playback experience.
As the foregoing illustrates, what is needed in the art is an approach for downloading digital content files to a content player that provides a higher quality playback experience than prior art approaches.